/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pojo;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author alessandro
 */
@Entity
@Table(name = "SERVICO_AGENDAMENTO")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ServicoAgendamento.findAll", query = "SELECT s FROM ServicoAgendamento s"),
    @NamedQuery(name = "ServicoAgendamento.findByIdServicoAgendamento", query = "SELECT s FROM ServicoAgendamento s WHERE s.idServicoAgendamento = :idServicoAgendamento"),
    @NamedQuery(name = "ServicoAgendamento.findByIdAgendamento", query = "SELECT s FROM ServicoAgendamento s WHERE s.codAgendamento = :idAgendamento")})
public class ServicoAgendamento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_servico_agendamento")
    private Integer idServicoAgendamento;
    @JoinColumn(name = "cod_servico", referencedColumnName = "id_item")
    @ManyToOne(optional = false)
    private Item codServico;
    @JoinColumn(name = "cod_agendamento", referencedColumnName = "id_agendamento")
    @ManyToOne(optional = false)
    private Agendamento codAgendamento;
    @OneToMany(mappedBy = "codServicoAgendamento")
    private List<ProdutoAgendamento> produtoAgendamentoList;

    public ServicoAgendamento() {
    }

    public ServicoAgendamento(Integer idServicoAgendamento) {
        this.idServicoAgendamento = idServicoAgendamento;
    }

    public Integer getIdServicoAgendamento() {
        return idServicoAgendamento;
    }

    public void setIdServicoAgendamento(Integer idServicoAgendamento) {
        this.idServicoAgendamento = idServicoAgendamento;
    }

    public Item getCodServico() {
        return codServico;
    }

    public void setCodServico(Item codServico) {
        this.codServico = codServico;
    }

    public Agendamento getCodAgendamento() {
        return codAgendamento;
    }

    public void setCodAgendamento(Agendamento codAgendamento) {
        this.codAgendamento = codAgendamento;
    }

    @XmlTransient
    public List<ProdutoAgendamento> getProdutoAgendamentoList() {
        return produtoAgendamentoList;
    }

    public void setProdutoAgendamentoList(List<ProdutoAgendamento> produtoAgendamentoList) {
        this.produtoAgendamentoList = produtoAgendamentoList;
    }

  /*  @Override
    public int hashCode() {
        int hash = 0;
        hash += (idServicoAgendamento != null ? idServicoAgendamento.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ServicoAgendamento)) {
            return false;
        }
        ServicoAgendamento other = (ServicoAgendamento) object;
        if ((this.idServicoAgendamento == null && other.idServicoAgendamento != null) || (this.idServicoAgendamento != null && !this.idServicoAgendamento.equals(other.idServicoAgendamento)) || (!this.codServico.getIdItem().equals(other.codServico.getIdItem()))) {
            return false;
        }
        return true;
    }
*/
    @Override
    public String toString() {
        return "pojo.ServicoAgendamento[ idServicoAgendamento=" + idServicoAgendamento + " ]";
    }
    
}
